home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The PC-SIG Library 9
/
The PC-SIG Library on CD ROM - Ninth Edition.iso
/
1201_300
/
DISK1262
/
DISK1262.ZIP
/
UPRCS.D
< prev
next >
Wrap
Text File
|
1988-07-11
|
1KB
|
54 lines
; Doug's Programming Language -- DPL, Version 2.22
; Copyright (c) 1988 Douglas S. Cody, All rights reserved.
;--------------------------------
; UPRCS -- Convert all ASCIIZ string characters to uppercase
;
; Entry Conditions:
; AX holds the string offset
; Exit conditions:
; Assume all working registers modified
;
; Calling Example:
;
; DEFINE M00,'this is a test...'
; ;
; CALL UPRCS M00
;
; Calling results:
;
; M00 = 'THIS IS A TEST...'
;
SUBPGM UPRCS
BEGIN UPRCS
PUSH ES
PUSH DS
POP ES
PUSH SI
PUSH DI
MOV SI,AX ; SI WILL LEAD
MOV DI,AX ; DI WILL FOLLOW UP
MOV BX,07A61H ; BH='z', BL='a'
;
U05:
LODSB ; FETCH THE BYTE
OR AL,AL ; EOL?
JZ U15 ; YES, EXIT NOW...
CMP AL,BL ; IS IT LESS THAN 'a'?
JB U10 ; YES, SKIP CONVERSION
CMP AL,BH ; GREATER THAN 'z'?
JA U10 ; YES, SKIP CONVERSION
AND AL,5FH ; CLEAR THE LOWERCASE BIT
;
U10:
STOSB ; SAVE THE CHARACTER
JMP SHORT U05 ; CONTINUE TILL DONE...
;
U15:
POP DI
POP SI
POP ES
RET
;
ENDPGM UPRCS
;